package com.mayuhao.userstudent.config;

/**
 * @author 马宇豪
 * @PackageName course-selection-system
 * @Package com.mayuhao.userstudent.config
 * @date 2022/11/13 周日下午 4:15:20
 * @email 1757442521@qq.com
 */

import com.mayuhao.userstudent.entity.UserStudent;
import com.mayuhao.userstudent.service.IUserStudentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * 定时任务配置
 *
 * @author Pactera
 */
@Slf4j
@Configuration
@EnableScheduling
public class SchedulingConfig {
    @Resource
    IUserStudentService studentService;

    /*
    1.   0 0 12 10 * ? *                                     每月的10日的中午12点触发
    2.   0 30 12 * * ?   或   0 30 12 ? * *          每天12点30分触发
    3.   0 0 12 ? * FRI                                     每周五中午12点触发
    4.   0 30 20 ? * MON-FRI                          周一到周五每天12点30分触发
    5.   0 0 10,14,16 * * ?                                每天上午10点,下午2点,4点的时候各触发一次
    6.   0 0/30 9-17 * * ?                                  早上九点到下午五点每半小时触发一次
    7.   0 * 12 * * ?     或    0 0/1 12 * * ?         每天12点到12:59期间每分钟触发一次
    8.   0 0/5 12,15 * * ?                                  每天12点到12:55期间和15点到15:55期间的每5分钟触发一次
    9.   (*)/5 * * * * ?                                      每隔5秒触发一次
    10. 30 * * * * ?                                           每半分钟触发任务
    */
    @Scheduled(cron = "0 0 12 ? * FRI ") // 每天凌晨执行一次(0:0:0)
    //@Scheduled(cron = "0 */10 * * * ?") // 每10分钟执行一次
//        @Scheduled(cron = "*/5 * * * * ?") // 每5秒执行一次
//    @Scheduled(cron = "0 0 12 10 * ? * ") // 每月的20日的中午12点触发
    public List<String> getToken() {
        ArrayList<String> list = new ArrayList<>();
//        UserStudent student = new UserStudent();
//        ArrayList<String> courseId = new ArrayList<>();
//        ArrayList<String> courseName = new ArrayList<>();
//        ArrayList<Integer> courseChooseNumber = new ArrayList<>();
//        ArrayList<Integer> classSeatNumber = new ArrayList<>();
        try {

            List<UserStudent> scheduleSelect = studentService.scheduleSelect();
            for (UserStudent userStudent : scheduleSelect) {
                if (userStudent.getCourseChooseNumber() < userStudent.getClassSeatNumber() / 2) {
                    list.add(userStudent.getStudentId());
//                    student.setCourseId(userStudent.getCourseId());
//                    student.setCourseName(userStudent.getCourseName());
//                    student.setCourseChooseNumber(userStudent.getCourseChooseNumber());
//                    student.setClassSeatNumber(userStudent.getClassSeatNumber());
                }
            }
            System.err.println(list);

        } catch (Exception e) {
            log.error("定时任务出错", e);
        }
        return list;
    }
}
